package com.zz.ecommerce.togatherDeclareMgr.custDeclarationUpload.bean;


import com.zz.ecommerce.togatherDeclareMgr.common.bean.TCargo;
import com.zz.ecommerce.togatherDeclareMgr.common.bean.TContainers;
import com.zz.ecommerce.togatherDeclareMgr.common.bean.TDocuments;
import com.zz.ecommerce.togatherDeclareMgr.common.bean.TEntryInfo;

import java.util.List;

/**
 * 报关报文定义
 */
public class DecMessage {

    public static final String DEFAULT_VERSION = "3.1";
    /**
     * 报关头
     */
    TEntryInfo decHead;
    /**
     * 报关货物列表
     */
    List<TCargo> decLists;
    /**
     * 报关集装箱列表
     */
    List<TContainers> decContainers;
    /**
     * 报关随附单据
     */
    List<TDocuments> decLicenseDocus;
    /**
     * 报关单自由文本信息DecFreeTxt
     */
    private String bonNo;//监管仓号	X(32)
    private String cusFie;//货场代码	X(8)
    private String decBpNo;//报关员联系方式	X(32)
    private String decNo;//报关员号	X(13)
    private String relId;//关联报关单号	X(18)
    private String relManNo;//关联备案号	X(12)
    private String voyNo;//航次号	X(32)
    //报关单附加信息DecSign
    private String clientSeqNo;//企业端唯一编号

    private String type = "";//EDI申报备注 为空表示一般报关单
    /**
     * 版本号
     */
    private String version = DEFAULT_VERSION;

    //4、
    // 修改报关单预录入界面，将“原产国（地区）/最终目的国（地区）”拆分为“原产国（地区）”和“最终目的国（地区）”，
    // 均为必填项，进口时最终目的国默认为中国，出口时原产国默认为中国。对“原产国（地区）”和“最终目的国（地区）”
    // 使用国别地区代码表进行逻辑检查（country）
    private String destinationCountry; //TODO 表体

    // 承诺事项 1勾选 0未勾选  111 110 101 100 011 010 001 000
    // 第一位：特殊关系确认
    // 第二位：价格影响确认
    //  第三位：进出境许可申报
    //  第四位：属地查验确认
    private String promiseItmes; //TODO 未选中的是否要传0 表头

    public TEntryInfo getDecHead() {
        return decHead;
    }

    public void setDecHead(final TEntryInfo decHead) {
        this.decHead = decHead;
    }

    public List<TCargo> getDecLists() {
        return decLists;
    }

    public void setDecLists(final List<TCargo> decLists) {
        this.decLists = decLists;
    }

    public List<TContainers> getDecContainers() {
        return decContainers;
    }

    public void setDecContainers(final List<TContainers> decContainers) {
        this.decContainers = decContainers;
    }

    public List<TDocuments> getDecLicenseDocus() {
        return decLicenseDocus;
    }

    public void setDecLicenseDocus(final List<TDocuments> decLicenseDocus) {
        this.decLicenseDocus = decLicenseDocus;
    }

    public String getBonNo() {
        return bonNo;
    }

    public void setBonNo(final String bonNo) {
        this.bonNo = bonNo;
    }

    public String getCusFie() {
        return cusFie;
    }

    public void setCusFie(final String cusFie) {
        this.cusFie = cusFie;
    }

    public String getDecBpNo() {
        return decBpNo;
    }

    public void setDecBpNo(final String decBpNo) {
        this.decBpNo = decBpNo;
    }

    public String getDecNo() {
        return decNo;
    }

    public void setDecNo(final String decNo) {
        this.decNo = decNo;
    }

    public String getRelId() {
        return relId;
    }

    public void setRelId(final String relId) {
        this.relId = relId;
    }

    public String getRelManNo() {
        return relManNo;
    }

    public void setRelManNo(final String relManNo) {
        this.relManNo = relManNo;
    }

    public String getVoyNo() {
        return voyNo;
    }

    public void setVoyNo(final String voyNo) {
        this.voyNo = voyNo;
    }

    public String getClientSeqNo() {
        return clientSeqNo;
    }

    public void setClientSeqNo(final String clientSeqNo) {
        this.clientSeqNo = clientSeqNo;
    }

    public String getVersion() {
        return version;
    }

    public void setVersion(final String version) {
        this.version = version;
    }

    public String getType() {
        return this.type;
    }

    public void setType(final String type) {
        this.type = type;
    }

    public String getDestinationCountry() {
        return this.destinationCountry;
    }

    public void setDestinationCountry(final String destinationCountry) {
        this.destinationCountry = destinationCountry;
    }

    public String getPromiseItmes() {
        return this.promiseItmes;
    }

    public void setPromiseItmes(final String promiseItmes) {
        this.promiseItmes = promiseItmes;
    }

    @Override
    public String toString() {
        return "DecMessage{" +
               "decHead=" + decHead +
               ", decLists=" + decLists +
               ", decContainers=" + decContainers +
               ", decLicenseDocus=" + decLicenseDocus +
               ", bonNo='" + bonNo + '\'' +
               ", cusFie='" + cusFie + '\'' +
               ", decBpNo='" + decBpNo + '\'' +
               ", decNo='" + decNo + '\'' +
               ", relId='" + relId + '\'' +
               ", relManNo='" + relManNo + '\'' +
               ", voyNo='" + voyNo + '\'' +
               ", clientSeqNo='" + clientSeqNo + '\'' +
               ", version='" + version + '\'' +
               '}';
    }
}
